package com.fufan.mtsaas.modules.newtech.xjsyearaudit.service;

import com.baomidou.mybatisplus.service.IService;
import com.fufan.mtsaas.modules.common.bo.response.RequestPojo;
import com.fufan.mtsaas.modules.common.bo.response.Result;
import com.fufan.mtsaas.modules.newtech.xjsyearaudit.bo.request.*;
import com.fufan.mtsaas.modules.newtech.xjsyearaudit.bo.response.XjsYearAuditResponse;
import com.fufan.mtsaas.modules.newtech.xjsyearaudit.bo.response.XjsYearAuditTotal;
import com.fufan.mtsaas.modules.newtech.xjsyearaudit.model.XjsYearAudit;

/**
 * 服务类
 *
 * @author Liby
 * @since 2024-12-16
 */
public interface XjsYearAuditSvc extends IService<XjsYearAudit> {

    Result<XjsYearAudit> doSave(XjsYearAuditSaveRequest entity, RequestPojo requestPojo);

    Result doUpdate(XjsYearAuditIdRequest entity, RequestPojo requestPojo);

    Result doDelete(XjsYearAuditDeleteRequest map, RequestPojo requestPojo);

    Result doDetail(XjsYearAuditQueryByIdRequest map, RequestPojo requestPojo);
    
    Result doApprove(XjsYearAuditApproveRequest map, RequestPojo requestPojo);
    
    Result<XjsYearAuditResponse> doMyAuditApplication(XjsYearAuditQueryRequest map, RequestPojo requestPojo);

    Result<XjsYearAuditResponse> doMyDraftQuery(XjsYearAuditQueryRequest map, RequestPojo requestPojo);

    Result<XjsYearAuditResponse> doCompletedProjectAudit(XjsYearAuditQueryRequest map, RequestPojo requestPojo);

    Result<XjsYearAuditResponse> doPendingStageReviewConfirmation(XjsYearAuditQueryRequest map, RequestPojo requestPojo);

    Result<XjsYearAuditResponse> doConfirmedStageReview(XjsYearAuditQueryRequest map, RequestPojo requestPojo);

    Result<XjsYearAuditResponse> doYearAuditApplication(XjsYearAuditQueryRequest map, RequestPojo requestPojo);

    Result<XjsYearAuditTotal> doYearAuditTotal();
}
